Method and system to automatically define resources forming an it service

ABSTRACT

A method to automatically define resources forming an IT service may include tracking resources utilized in responding to a request or set of requests or performing a transaction or a set of transactions. The method may also include automatically defining resources that form an IT service by aggregating all resources utilized to respond to all requests or to perform all transactions.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation-in-part to co-pending patentapplication Ser. No. 10/711,042, filed Aug. 19, 2004, entitled “Methodand System to Evaluate Utilization of Resources,” which is incorporatedherein in its entirety by reference and is assigned to the same assigneeas this application.

BACKGROUND OF INVENTION

The present invention relates to information technology (IT) servicesand more particularly to a method and system to automatically defineresources forming or comprising an IT service or the like.

There is a need to provide system management products that provide anability to automatically understand or define the inter-relationshipsbetween various software, hardware, storage devices and other componentsthat may collectively provide an IT service to its owning company. An ITservice may also be referred to as a Business System, Line of Businessor Business Service. With current products, an administrator mustmanually associate the specific IT resources into a collection thatdefine an IT service. Another option or alternative is to be able todefine simple rules which perform a query against all resources. Theresources matching the query are then placed into a collection (ITService, Business System, etc.). While this option may be better thanthe manual method, this option does not work well in practice because itrequires conventions be followed in how the IT resources are defined oridentified so that general queries may be used. For example, queriesagainst a resource name are only useful when an IT organization hasstrict naming conventions that are followed religiously.

While either the manual method or defined rules method above may permitan operator or administrator to view and understand the IT resourcesthat form or comprise an IT service, the IT resources included to definethe service are only as complete as the last time the administratormanually re-evaluated the IT service's contents, or as complete as theaccuracy of the rules and frequency with which they are processed.

SUMMARY OF INVENTION

Being able to discover or define the resources that a given IT servicecomprises may provide a significant competitive advantage. In accordancewith an embodiment of the present invention, a method to defineresources that comprise or form an IT service may include recording atotal set of resources employed or utilized in responding to a requestor performing a transaction, such as an Application Resource Monitoring(ARM) based transaction or the like, during a selected time period orrolling time period. In addition to the ability to automatically definethe resources forming an IT service, the resources that are used themost during the selected time period or rolling time period may beassigned a higher priority than those used less frequently. In thismanner, not only can the IT service be discovered or defined, but theservice's status propagation logic may be influenced or adjusted to ahigher degree when one of the service's higher priority resourcesencounters a problem.

In accordance with an embodiment of the present invention, a method toautomatically define resources forming an IT service may includetracking resources utilized in responding to a request or set ofrequests or performing a transaction or set of transactions. The methodmay also include automatically defining resources that form an ITservice by aggregating all resources utilized to respond to all requestsor to perform all transactions.

In accordance with an embodiment of the present invention, a method toautomatically define resources forming an IT service may includeexamining each instance of a request or transaction. The method may alsoinclude maintaining a record of a union of all resources utilized inresponding to each instance of a request or transaction over a selectedtime period or on a rolling time period basis.

In accordance with an embodiment of the present invention, a system thatautomatically defines resources forming an IT service may include aprocessor. The system may also include a resource utilization programoperable on the processor. The resource utilization program may includecomputer executable instructions to maintain a record of a union of allresources utilized in responding to each instance of a request ortransaction over a selected time period or on a rolling time periodbasis.

In accordance with an embodiment of the present invention, a method ofmaking a system that automatically defines resources forming an ITservice may include providing a processor. The method may also includeproviding a resource utilization program operable on the processor. Theresource utilization program may include computer executableinstructions to maintain a record of a union of all resources utilizedin responding to each instance of a request or transaction over aselected time period or on a rolling time period basis.

In accordance with another embodiment of the present invention, acomputer-readable medium having computer-executable instructions forperforming a method that may include tracking resources utilized inresponding to a request or set of requests or performing a transactionor set of transactions. The method may also include automaticallydefining resources that form an IT service by aggregating all resourcesutilized to respond to all request or to perform all transactions.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a illustration of an example of responses to a set of requestsor performance of a set of transactions and the resources that may besequenced together to fulfill each request or perform each transaction.

FIGS. 2A and 2B (collectively FIG. 2) are a flow chart of an example ofa method to automatically define resources forming an IT service inaccordance with an embodiment of the present invention.

FIG. 3 is an example of a resource utilization diagram in accordancewith an embodiment of the present invention.

FIG. 4 is an example of a system that may automatically define resourcesforming an IT service in accordance with an embodiment of the presentinvention.

DETAILED DESCRIPTION

The following detailed description of preferred embodiments refers tothe accompanying drawings which illustrate specific embodiments of theinvention. Other embodiments having different structures and operationsdo not depart from the scope of the present invention.

FIG. 1 is an illustration of an example of a resource utilizationdiagram 100 illustrating responses to a set of requests or performanceof a set of transactions and the resources that may be sequencedtogether to fulfill each request or perform each transaction. Each lineor sequence 101-110 represents a response to a request or performance ofa transaction, such as an ARM-instrumented transaction, and theresources that may be used to satisfy the request or perform thetransaction. The different lettered boxes correspond to differentresources 112-120 utilized to satisfy the request or perform thetransaction and the arrows 122 between the lettered boxes correspond topaths between the different resources 112-120. Examples of resources112-120, and sequences of resource usages, may be information technology(IT) resources, such as networking adapters, routers or the like, whichin sequence pass data back and forth to provide a communication sessionbetween two applications, or resources such as servlets that make up aweb site where a user navigates through a sequence of servlets. In theseexamples a unique request may be a data packet being sent between twoapplications, or a user session with the web application. To fulfill therequest or perform a transaction, a set of resources are utilized in asequence, where the given sequence can quite likely change whenprocessing subsequent requests or transactions.

The resource utilization diagram 100 presented in FIG. 1 may be used topresent each transaction to a user or requestor for analysis. Thediagram 100 may be used to represent the multiple resources 112-120 in asystem 100 or needed to provide a service. Accordingly, the resources112-120 can be discovered or defined and an understanding of thespecific resources 112-120 that were exercised to complete a specifictransaction may be gained.

FIGS. 2A and 2B (collectively FIG. 2) are a flow chart of an example ofa method 200 to automatically define resources forming an IT service. Inblock 202, a request may be received for a service or to perform atransaction. In block 204, resources utilized in responding to therequest or performing the transaction may be tracked or each instance ofa request or transaction may be examined or monitored. In tracking theresources or examining each instance of a request or transaction, adetermination may be made in block 206 if any new or unknown resourcesare utilized that previously have not been used or are not on a resourcelist. The resource list may include any resources that have been usedduring a selected time period or a rolling time period. If the resourcebeing used is new or unknown in block 206, the new resource may be addedto the resource list in block 208. If the resource has been used beforeand is in the resource list in block 206, the method 200 may advance toblock 210. In block 210, a determination may be made whether the requestor transaction has been completed. If the request or transaction has notbeen completed, the method 200 returns to block 204 and the method 200continues to track the resources as previously described. If the requestor transaction is completed in block 210, the method may advance toblock 212. In block 212, a determination may be made if any resources inthe resource list have not been utilized for a predetermined timeduration. Any resource not used for the predetermined time period inblock 212 may be removed from the list in block 214. The method 200 mayadvance to block 216 from block 214 if the response in block 212 is no.Note that the processing at block 212 may be driven on a regularinterval such that resources can be “aged” out even when no requests ortransactions are arriving.

In block 216, a determination may be made if a selected time period orrolling time period has expired or if the resource list has beenrequested. If the selected time period or rolling time period has notexpired or the request list not requested, the method 200 may return toblock 202 where another request for service or a transaction may bereceived. The method 200 may then proceed as described above. If theselected time period or rolling time period has expired or a request forthe resource list received, the method 200 may advance to block 218. Inblock 218, all of the resources for all requests or transactions may beaggregated to automatically define the resources that form or comprisean IT service. The resources may be aggregated from the resource list.The resource list may form a record of the union of all resourcesutilized during the selected time period or rolling time period.

In block 220 a percentage of utilization for each resource across allrequests and transactions for the selected or rolling time period may becalculated in order to determine which resources are used morefrequently than others. In block 222, a priority may automatically beassigned to each resource according to the percentage of utilization inblock 220. In block 224, the resource list or a resource utilizationdiagram or both may be presented to a user or requester. The resourcelist and resource utilization diagram may also include or represent thepercentage of utilization and priority for each resource. At any givenpoint, the current resource list may represent the resources used by agiven transaction or group of transactions. A group of transactions andtheir corresponding resources may be aggregated together as describedwith respect to block 218 to automatically define the resources thatform or comprise an IT service.

In block 226, the priority assigned to each resource in block 222 may beused to adjust or influence status propagation logic associated with theIT service for more efficient operation of the service. For example, ifa higher priority resource is experiencing a problem, status propagationlogic will cause the IT service to show its status as degraded thereby,informing users that a significant problem exists. An example of statuspropagation logic is described in U.S. Pat. No. 5,535,335, entitled“Method and System for Reporting the Status of an Aggregate ResourceResiding in a Network of Interconnected Real Resources” by David E. Coxet. al., which is assigned to the same assignee as the present inventionand incorporated herein in its entirety by reference. The priorities andutilization percentages may also be helpful in planning maintenanceoperations and making improvements to the service, such as providingextra capacity or redundancy of higher priority resources or the like.

FIG. 3 is an example of a resource utilization diagram 300 in accordancewith an embodiment of the present invention. The resource utilizationdiagram may be formed as a result of the method 200 of FIGS. 2A and 2Bor as described in U.S. patent application Ser. No. 10/711,042 filedAug. 19, 2004 and entitled “Method and System to Evaluate Utilization ofResources.” The diagram 300 may represent a sequence of utilization of aplurality of resources, such as network adapters, routers, web sites,database servers and the like, that may be accessed or utilized inresponding to a request or a set of requests for information or data.Each of the resources may be represented by a predetermined resourcesymbol 302 in diagram 300. Each segment or path between resources may berepresented by a line 304 between sequential resource symbols 302. Eachline 304 may have a selected line width “W” corresponding to a quantityor number of occurrences of the segment in responding to a request orset of requests. For example, a higher quantity of occurrences of eachsegment between resources may correspond to a wider selected width “W”of the line 304 compared to a lower quantity of occurrences of asegment. To further illustrate this feature, lines 304 a have the widestselected width and represent segments with the highest quantity ofoccurrences. Lines 304 c have the narrowest selected width and representsegments with the lowest quantity of occurrences in the sequence andlines 304 b have a selected width between the widths of lines 304 a and304 c illustrating an intermediate quantity of occurrences of thesegments represented by these lines. Similarly, resources 302 could beenlarged to convey a high usage, or shrunk to covey seldom use. Thediagram 300 may represent a utilization of resources in responding to arequest or set of request or performing a transaction or set oftransactions over a predetermined time period or rolling time period.

Each resource symbol 302 may be represented with a predeterminedattribute that may correspond to a status of the resource, type ofresource or other feature or parameter related to the resource. Asillustrated in FIG. 3, examples of these predetermined attributes mayinclude a shape of the resource symbol 302, a color of the resourcesymbol, as illustrated parenthetically in each resource symbol, orsimilar indication. The attribute may represent a type of resource, aresource status (active or inactive) or similar condition.

The resource utilization diagram 300 may represent the same set ofresources used by the transactions in the resource utilization diagram100 of FIG. 1. In diagram 300 it is immediately apparent which resourcesare used the most within a resource set and may be assigned acorrespondingly higher priority for certain purposes, such as statuspropagation to the IT services the resource participates in, and inoperational and maintenance purposes, as described above. Thepercentages of utilization and assigned priorities may also be displayedin the diagram 300, in a tabular form or other suitable format.

FIG. 4 is an example of a system 400 to evaluate utilization ofresources 402 in accordance with an embodiment of the present invention.The system 400 may include a processor 404 that may be accessed by auser or requestor 406. A resource utilization program 408 may operate onthe processor 404. The resource utilization program 408 may embodyelements of the method 200 described with respect to FIGS. 2A and 2B topresent a resource list 410, a resource utilization diagram, such as thediagram 100 of FIG. 1 or the diagram 300 illustrated in FIG. 3, or someother representation of resource utilization. Accordingly, the resourceutilization program 408 may include computer executable instructions orthe like to track a sequence of utilization of a plurality of resources402 in responding to a request or set of requests similar to thatdescribed with respect to method 200. The resource utilization program408 may also include computer executable instructions or the like todetermine a quantity of occurrences of each segment linking pairs ofresource in the sequence. The resource utilization program 408 may alsoinclude computer executable instructions or the like to generate aresource utilization representation, such as diagram 300 of FIG. 3 orthe like, including a representation of the quantity of occurrences ofeach segment linking the resources. The resource utilization program 408may also include computer executable instructions to examine eachinstance of a request or transaction and to maintain a record of a unionof all resources utilized in responding to each instance of a request ortransaction over a selected time period or on a rolling time period inorder to automatically associate those resources with a given ITservice.

The system 400 or resource utilization program 408 may also includecomputer executable instruction or the like to represent each resourceby a predetermined symbol, such as symbols 302 of FIG. 3 or similarrepresentations. The system 400 or resource utilization program 408 mayalso include computer executable instructions to represent each segmentor path between or linking resources 402 by a line between correspondingresource symbols similar to that illustrated in FIG. 3 by lines 304. Theutilization program 408 may further include computer executableinstructions to form each line with a selected line width that maycorrespond to the quantity of occurrences of the segment in respondingto the request or set of requests similar to that described with respectto FIG. 3.

The system 400 or resource utilization program 408 may also includemeans, computer executable instructions or the like to represent eachresource symbol at a predetermined level or degree of translucencycorresponding to a time duration since the resource corresponding to theresource symbol was last utilized or accessed. Computer executableinstructions may also be provided to represent each resource with apredetermined attribute corresponding to a different possible status ofthe resource or other information related to the resource. Thepredetermined attribute may involve coloring each resource symbol one ofa plurality of different predetermined colors, or forming each resourcesymbol in one of a plurality of predetermined shapes, depending upon thestatus or attribute being illustrated, similar to that described withrespect to FIG. 3. Other means or techniques may be used as well tovisually designate or distinguish between different attributes orstatuses.

The system 400 may also include a browser 412 operable on the processor404 to access the resources 402 to respond to a request or set ofrequests or perform a transaction. The browser 412 may access theresources 402 via a network 414 which may form the segments 415 or pathsbetween the resources 402 as described above. The network 414 may be anycommunication network, such as the Internet, private network or thelike. The browser 412 may be Netscape®, Microsoft Internet Explorer® orthe like. The resource utilization program 408 may operate inassociation with the browser 412 to track a sequence of utilization ofthe plurality of resources 402 in responding to a request or a set ofrequests or performing a transaction or set of transactions.

A database 416 may be provided to store resource sequence and pathinformation 417. The resource sequence and path information 417 maysequentially store a resource identification (ID) 418 for each resource402 that may be accessed or utilized in response to a request or set ofrequests or to perform a transaction or set of transactions. Theresource sequence and path information 417 may also store an access time420 when the resource 402 was accessed or utilized. The database 416 mayalso store a departure time 422 when the browser 412 departs a currentresource 402 or transitions to another resource 402 and may store anyother data 424 that may assist in evaluating utilization of resources ina system or network. The resource sequence and path information mayfurther store segment or path information 426 so that the number orquantity of occurrences of a segment may be determined.

Input and output devices 428 or combination I/O devices may be coupledto the processor 404 to permit the user 406 or requester to operate andinterface with the processor 404. The I/O devices 428 may include akeyboard and pointing device to enter requests and a display or monitorto present resource utilization information to the user 406 orrequester, such as the resource list 410 or the resource utilizationdiagram 300 illustrated in FIG. 3 or the like. The I/O devices 428 mayalso include disk drives, optical, mechanical, magnetic, or infraredinput/output devices or the like.

In accordance with an embodiment of the present invention, the database416 may store a resource list 429. The resource list 429 may be the sameas the resource list 410. A new or unknown resource 402 may be added tothe resource list 429 whenever a new or unknown resource is utilized inresponding to a request or set of requests or in performing atransaction or set of transactions, similar to that described withrespect to block 208 of method 200 (FIG. 2). The resource list 429 mayinclude a resource ID 430 to identify each of the resources 402 on thelist 429. The resource list 429 may also include a percentage ofutilization 432 of each resource 402 on the list 429 in responding to arequest or set of requests or performing transactions during a selectedtime period or during a rolling time period as previously described withrespect to method 200 (FIG. 2). The percentage of utilization may bedetermined by the resource utilization program 408 from the resourcesequence and path information 417. The resource list 429 may furtherinclude a priority 434 that may be automatically assigned to eachresource 402 in the list 429 according to the percentage of utilizationof the resource 402. The priority may be automatically assigned by theresource utilization program 408.

Elements of the present invention, such as method 200 of FIGS. 2A and2B, and system 400 of FIG. 4, may be embodied in hardware and/orsoftware as a computer program code that may include firmware, residentsoftware, microcode or the like. Additionally, elements of the inventionmay take the form of a computer program product on a computer-usable orcomputer-readable storage medium having computer-usable orcomputer-readable program code embodied in a medium for use by or inconnection with a system, such as system 400 of FIG. 4. Examples of sucha medium may be illustrated in FIG. 4 as network or medium 414 and I/Odevices 428. A computer-usable or readable medium may be any medium thatmay contain, store, communicate or transport the program for use by orin connection with a system. The medium, for example, may be anelectronic, magnetic, optical, electromagnetic, infrared orsemiconductor system or the like. The medium may also be simply a streamof information being retrieved when the computer program product is“downloaded” through a network, such as the Internet or the like. Thecomputer-usable or readable medium could also be paper or anothersuitable medium upon which the program may be printed.

Although specific embodiments have been illustrated and describedherein, those of ordinary skill in the art appreciate that anyarrangement which is calculated to achieve the same purpose may besubstituted for the specific embodiments shown and that the inventionhas other applications in other environments. This application isintended to cover any adaptations or variations of the presentinvention. The following claims are in no way intended to limit thescope of the invention to the specific embodiments described herein.

1. A method to automatically define resources forming an IT service,comprising: tracking resources utilized in responding to a request orset of requests or performing a transaction or a set of transactions;and automatically defining resources that form an IT service byaggregating all resources utilized to respond to all requests or toperform all transactions.
 2. The method of claim 1, further comprisingadding any new resources utilized to a resource list.
 3. The method ofclaim 2, further comprising removing any resource from the resource listin response to the resource not being utilized for a predetermined timeduration.
 4. The method of claim 1, further comprising determining apercentage of utilization of each resource across all requests ortransactions.
 5. The method of claim 4, further comprising automaticallyassigning a priority to each resource according to the percentage ofutilization of the resource.
 6. The method of claim 5, furthercomprising presenting a resource list and an associated priority foreach resource to a user or requestor.
 7. The method of claim 5, furthercomprising adjusting a status propagation logic based on the priorityassigned to each resource.
 8. The method of claim 1, further comprisingpresenting a resource utilization diagram to a user or requestor.
 9. Themethod of claim 8, further comprising representing a percentage ofutilization of each resource in the resource utilization diagram. 10.The method of claim 9, further comprising representing a priority ofeach resource in the resource utilization diagram, wherein the priorityis automatically assigned according to the percentage of utilization ofthe resource.
 11. The method of claim 8, further comprising representinga quantity of occurrences of each segment linking resources in theresource utilization diagram.
 12. The method of claim 8, furthercomprising representing a time duration since each resource was lastutilized in the resource utilization diagram.
 13. A method toautomatically define resources forming an IT service, comprising:examining each instance of a request or transaction; and maintaining arecord of a union of all resources utilized in responding to eachinstance of a request or transaction over a selected time period or on arolling time period basis.
 14. The method of claim 13, furthercomprising determining a percentage of utilization of each resourceacross all requests or transactions.
 15. The method of claim 14, furthercomprising automatically assigning a priority to each resource accordingto the percentage of utilization of the resource.
 16. The method ofclaim 14, further comprising adjusting a status propagation logic basedon the priority assigned to each resource.
 17. The method of claim 13,further comprising presenting a resource utilization diagram to a useror requestor.
 18. A system that automatically defines resources formingan IT service, comprising: a processor; and a resource utilizationprogram operable on the processor, wherein the resource utilizationprogram includes computer executable instructions to maintain a recordof a union of all resources utilized in responding to each instance of arequest or transaction over a selected time period or on a rolling timeperiod basis.
 19. The system of claim 18, wherein the resourceutilization program comprises computer executable instructions todetermine a percentage of utilization of each resource across allrequest or transactions.
 20. The system of claim 19, wherein theresource utilization program comprises computer executable instructionsto automatically assign a priority to each resource according to thepercentage of utilization of the resource.
 21. The system of claim 18,wherein the resource utilization program comprises computer executableinstructions to adjust a status propagation logic based on the priorityassigned to each resource.
 22. The system of claim 18, wherein theresource utilization program comprises executable instruction to presenta resource utilization diagram to a user or requestor.
 23. A method ofmaking a system that automatically defines resources forming an ITservice, comprising: providing a processor; and providing a resourceutilization program operable on the processor, wherein the resourceutilization program includes computer executable instructions tomaintain a record of a union of all resources utilized in responding toeach instance of a request or transaction over a selected time period oron a rolling time period basis.
 24. The method of claim 23, furthercomprising providing computer executable instructions to determine apercentage of utilization of each resource across all request ortransactions.
 25. The method of claim 24, further comprising providingcomputer executable instructions to automatically assign a priority toeach resource according to the percentage of utilization of theresource.
 26. The method of claim 23, further comprising providingcomputer executable instructions to adjust a status propagation logicbased on the priority assigned to each resource.
 27. The method of claim23, further comprising providing computer executable instructions topresent a resource utilization diagram to a user or requestor.
 28. Acomputer-readable medium having computer-executable instructions forperforming a method, comprising: tracking resources utilized inresponding to a request or set of requests or performing a transactionor a set of transactions; and automatically defining resources that forman IT service by aggregating all resources utilized to respond to allrequests or to perform all transactions.
 29. The computer-readablemedium having computer executable instructions for the method of claim28, further comprising automatically assigning a priority to eachresource according to the percentage of utilization of the resource. 30.The computer-readable medium having computer executable instructions forperforming the method of claim 29, further comprising presenting aresource list and an associated priority for each resource to a user orrequestor.
 31. The computer-readable medium having computer executableinstructions for performing the method of claim 29, further comprisingadjusting a status propagation logic based on the priority assigned toeach resource.
 32. The computer-readable medium having computerexecutable instructions for performing the method of claim 28, furthercomprising presenting a resource utilization diagram to a user orrequestor.